package pe.edu.unmsm.fisi.ceups.servicio.impl;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.hibernate.Session;
import pe.edu.unmsm.fisi.ceups.modelo.dao.GenericoDAO;
import pe.edu.unmsm.fisi.ceups.modelo.dao.hibernate.HibernateDAO;
import pe.edu.unmsm.fisi.ceups.modelo.dao.hibernate.utilitario.HibernateUtil;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.Ccurso;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.CcursoAperturado;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.CcursoNoaperturado;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.Ccursodocente;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.Cdocente;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.ChorarioDetalle;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.ChorarioDisponibilidad;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.Cinscripcionalumno;
import pe.edu.unmsm.fisi.ceups.modelo.entidad.Cpersona;
import pe.edu.unmsm.fisi.ceups.servicio.ServicioDesarrollarCurso;

public class ImplDesarrollarCurso implements ServicioDesarrollarCurso {

    public List<Ccurso> test() {
        List<Ccurso> cCursos = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            GenericoDAO<Ccurso> cCursoDAO = new HibernateDAO<Ccurso>(Ccurso.class, session);
            //cCursos = cCursoDAO.findAll();
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            session.close();
        }
        return cCursos;
    }
    
    
    public List<String []> mostrar_cursosNoaperturados(){
        
        List<CcursoNoaperturado> cCursosNoaperturados = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        List<String []> cCursoNoaperturado=new ArrayList<String[]>();
        
        
        try {
            session.beginTransaction();
            GenericoDAO<CcursoNoaperturado> cCursoNoaperturadoDAO = new HibernateDAO<CcursoNoaperturado>(CcursoNoaperturado.class, session);
            cCursosNoaperturados = cCursoNoaperturadoDAO.findByProperty("nropreinscritos", 9, ">=","");
            
                for(int i=0;i<cCursosNoaperturados.size();i++){
           
               
               String [] a= new String [2];
               a[0]=cCursosNoaperturados.get(i).getCcurso().getNombrecurso();
               a[1]=cCursosNoaperturados.get(i).getCcurso().getCodcurso();
               
           cCursoNoaperturado.add(a);
           
           }
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            session.close();
        }
        return cCursoNoaperturado;
    
    }
    
     public List<String []> mostrar_alumnosxcurso(int idcurso){
    
        Session session = HibernateUtil.getSessionFactory().openSession();
        
         //List<Ccursodocente> cCursoDocentes=null;
         List<Cinscripcionalumno> cInscripcionAlumno=null;
         
         List<String[]> cPersonas=new ArrayList<String[]>();
         
        try {
            session.beginTransaction();
/*
            GenericoDAO<CcursoAperturado> cCursoAperturadoDAO = new HibernateDAO<CcursoAperturado>(CcursoAperturado.class, session);
            CcursoAperturado c = cCursoAperturadoDAO.findByProperty("idcurso",idcurso, "=", " ").get(0);
*/

            GenericoDAO<Cinscripcionalumno> cInscripcionAlumnoDAO = new HibernateDAO<Cinscripcionalumno>(Cinscripcionalumno.class, session);
            cInscripcionAlumno = cInscripcionAlumnoDAO.findByProperty("ccursoAperturado", idcurso, "=", " ");

             System.out.println("tamaño:"+cInscripcionAlumno.size());
 
             for(int i=0;i<cInscripcionAlumno.size();i++){
           
               String [] a= new String [3];
               a[0]=cInscripcionAlumno.get(i).getCalumno().getCpersona().getNombres()+cInscripcionAlumno.get(i).getCalumno().getCpersona().getAppaterno()+cInscripcionAlumno.get(i).getCalumno().getCpersona().getApmaterno();
               a[1]=cInscripcionAlumno.get(i).getCalumno().getIdalumno().toString();
               
           cPersonas.add(a);
           
           }
            
            session.getTransaction().commit();
            
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            
            session.close();
        }
        
    return cPersonas;
    
    }

       
}
